OLE Excel a formatovani

Otázka od: Koukal Pavel

5. 9. 2002 9:44

Zdravim,

mam jeden mensi problem s kterym bych potreboval pomoc.

Potrebuji v Delphi 4 pomoci OLE objektu excelu naformatovat sloupec, vyber ci
jen jedno pole na ciselny format 0.00

Mam napriklad:

var MyExcel,WS:OleVariant;
...
...
MyExcel:=CreateOleObject('Excel.Application');
MyExcel.Workbooks.Add();
WS:=MyExcel.Activesheet;
...
...

Formatovat jsem se pokousel takto:
1)
WS.Range[A1,A5].NumberFormat:='0.00';
nebo
WS.Cells.Item[1,1].NumberFormat:='0.00';

Pri tomto pokusu dostanu ale tuto chybu:
Neni mozne nastavit vlastnost NumberFormat tridy Range.


2)
WS.Selection.NumberFormat:='0.00';

A po tomto pokusu dostanu tuto hlasku:
Method 'Selection' not supported by automation object.



Proto se vas ptam, zda jste nekdo neco podobneho neresil a kdyz ano, tak jak.

Dekuji.

S pozdravem Pavel Koukal.


Delphi 4, upd. 2, Windows 2000, Office 2000

Odpovedá: Petr Brant

5. 9. 2002 12:11

A nechce to vzhledem k narodnimu nastaveni misto tecky carku? Pouzivam napr.

NewWorkSheet.Columns[FC + 3].NumberFormat:= '# ##0,00';

a funguje to bez problemu.

RNDr. Petr Brant [brant@dcomm.cz]
http://web.redbox.cz/petr.brant
ICQ #68652380

D&COMM s.r.o.
Korunovacni 6
170 00 Praha 7


> Subject: OLE Excel a formatovani
>

>
> Potrebuji v Delphi 4 pomoci OLE objektu excelu naformatovat sloupec, vyber
ci jen jedno pole na ciselny format 0.00
>
> Mam napriklad:
>
> var MyExcel,WS:OleVariant;
> ...
> ...
> MyExcel:=CreateOleObject('Excel.Application');
> MyExcel.Workbooks.Add();
> WS:=MyExcel.Activesheet;
> ...
> ...
>
> Formatovat jsem se pokousel takto:
> 1)
> WS.Range[A1,A5].NumberFormat:='0.00';
> nebo
> WS.Cells.Item[1,1].NumberFormat:='0.00';
>
> Pri tomto pokusu dostanu ale tuto chybu:
> Neni mozne nastavit vlastnost NumberFormat tridy Range.
>
>
> 2)
> WS.Selection.NumberFormat:='0.00';
>
> A po tomto pokusu dostanu tuto hlasku:
> Method 'Selection' not supported by automation object.
>

Odpovedá: Holeček Jan

5. 9. 2002 9:51

Formátuji takto a funguje to:

FWorkSheet.Range['C'+IntToStr(RowBegin),'C'+IntToStr(Row)].NumberFormat := '0';
FWorkSheet.Range['J'+IntToStr(RowBegin),'L'+IntToStr(Row)].NumberFormat :=
'0,00%';
FWorkSheet.Range['M'+IntToStr(RowBegin),'P'+IntToStr(Row)].NumberFormat :=
'# ##0,00';

Honza
 
 

Odpovedá: Koukal Pavel

5. 9. 2002 19:12

Moc dekuji - problem vyresen. Staci zamenit tecku za carku a uz neni problem.
Tedy misto '0.00' zadat '0,00' a je po problemu.

Asi by to chtelo dovolenou.

S pozdravem Pavel Koukal.

> Formatuji takto a funguje to:
>
> FWorkSheet.Range['J'+IntToStr(RowBegin),'L'+IntToStr(Row)].Num
> berFormat := '0,00%';
>
> Honza
>

Odpovedá: Hlas

5. 9. 2002 12:57

skus '0.00' nahradit '0,00'

----- Original Message -----
From: "Koukal Pavel" <Pavel.Koukal@pvt.cz>
To: <delphi-l@clexpert.cz>
Sent: Thursday, September 05, 2002 10:39 AM
Subject: OLE Excel a formatovani


Zdravim,

mam jeden mensi problem s kterym bych potreboval pomoc.

Potrebuji v Delphi 4 pomoci OLE objektu excelu naformatovat sloupec, vyber
ci jen jedno pole na ciselny format 0.00

Mam napriklad:

var MyExcel,WS:OleVariant;
...
...
MyExcel:=CreateOleObject('Excel.Application');
MyExcel.Workbooks.Add();
WS:=MyExcel.Activesheet;
...
...

Formatovat jsem se pokousel takto:
1)
WS.Range[A1,A5].NumberFormat:='0.00';
nebo
WS.Cells.Item[1,1].NumberFormat:='0.00';

Pri tomto pokusu dostanu ale tuto chybu:
Neni mozne nastavit vlastnost NumberFormat tridy Range.


2)
WS.Selection.NumberFormat:='0.00';

A po tomto pokusu dostanu tuto hlasku:
Method 'Selection' not supported by automation object.



Proto se vas ptam, zda jste nekdo neco podobneho neresil a kdyz ano, tak
jak.

Dekuji.

S pozdravem Pavel Koukal.


Delphi 4, upd. 2, Windows 2000, Office 2000

Odpovedá: Ing. Jan Dvorak

8. 9. 2002 3:34

Narodni prostredi lze nakonfigurovat tak, ze i v Cesku muze
byt desetinnym oddelovacem tecka. Neporadil by nekdo zpusob
programoveho zjisteni desetinneho oddelovace?

Ing. Jan Dvorak

Moc dekuji - problem vyresen. Staci zamenit tecku za carku a
uz neni problem. Tedy misto '0.00' zadat '0,00' a je po
problemu.

Odpovedá: Jan Sebelík

8. 9. 2002 13:24

> Narodni prostredi lze nakonfigurovat tak, ze i v Cesku muze
> byt desetinnym oddelovacem tecka. Neporadil by nekdo zpusob
> programoveho zjisteni desetinneho oddelovace?
Pokud vsechno funguje, jak ma, po spusteni programu by mel byt desetinny
oddelovac nacten z Windows do promenne DecimalSeparator (myslim unita
SysUtils).
Pak se toto nastaveni da samozrejme programove menit.

Honza
=========================================
= HAES - RNDr. Jan Sebelik
= http://www.haes.cz
= Skolici a konzultacni stredisko pro Delphi a Win32
= Vojtiskova 206
= 507 81 Lazne Belohrad
= tel. 0434 692 569 (0776 347735)
=========================================

Odpovedá: Mgr. Richard Kotrba

8. 9. 2002 22:17

Take je mozne zjistit aktualni oddelovac desetinne casti zavolanim promenne
DecimalSeparator


R.K.
-----Original Message-----
From: delphi-l-owner@clexpert.cz [mailto:delphi-l-owner@clexpert.cz]
Sent: Friday, September 06, 2002 7:41 AM
To: delphi-l@clexpert.cz
Subject: RE: OLE Excel a formatovani


Narodni prostredi lze nakonfigurovat tak, ze i v Cesku muze byt desetinnym
oddelovacem tecka. Neporadil by nekdo zpusob programoveho zjisteni
desetinneho oddelovace?

Ing. Jan Dvorak

Moc dekuji - problem vyresen. Staci zamenit tecku za carku a uz neni
problem. Tedy misto '0.00' zadat '0,00' a je po problemu.